/**
 * @Project Name:cn.hoofungson.studio
 * @Package Name:cn.hoofungson.sso.service.common
 * @Since JDK 1.8
 */
package cn.hoofungson.sso.service.common;

import io.jsonwebtoken.Claims;
import javax.crypto.SecretKey;

/**
 * @Description: Jwt业务接口
 * @Author 胡松 hoofungson@163.com
 * @Date 2017-11-10 21:13
 * @Version V1.0
 */
public interface JwtService {

    /**
     * 由字符串生成加密key
     * @return
     */
    SecretKey generalKey();

    /**
     * 创建jwt
     * @param id
     * @param subject
     * @param ttlMillis
     * @return
     * @throws Exception
     */
    String createJWT(String id, String subject, long ttlMillis);

    /**
     * 解密jwt
     * @param jwt
     * @return
     * @throws Exception
     */
    Claims parseJWT(String jwt);

    /**
     * 验证jwt
     * @param jwt
     * @return
     * **/
    Boolean validateJWT(String jwt);
}
